home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / DELPHI / LEDIT108.ZIP / LEDLP / LEDLP.TXT < prev    next >
Encoding:
Text File  |  1996-07-05  |  63.6 KB  |  1,387 lines

  1. TLEdit Delphi Component
  2. Copyright 1996, TechnoSoft, Inc.
  3. Documentation text file for Delphi VCL
  4.  
  5.  
  6. Property types
  7. --------------
  8.  
  9. TLEScrollStyle  = (lsNone, lsHorizontal, lsVertical, lsBoth);
  10.   This type defines the types of scroll bars that can be added to the LEdit 
  11.   component.
  12.  
  13. TLEEditCharCase = (ecNormal, ecUpperCase, ecLowerCase);
  14.   This type defines the types of case they LEdit component can be set to.
  15.  
  16. TLEPopupStyle   = (psNone, psStandard, psDelphi);
  17.   This type defines the types of popup menu allowed in the LEdit component.
  18.  
  19. TLEInitStyle    = (isFile, isText, isCustom);
  20.   This type defines the ways the LEdit component can be initialized.
  21.  
  22. TLESpaceStyle   = (slNone, slSmall, slMedium, slLarge);
  23.   This type defines the types of horizontal and vertical indentation allowd
  24.   with the LEdit component.
  25.  
  26. TLEBraceStyle   = (brNone, brLeftBrace, brRightBrace, brNoCaseLeftBrace, 
  27.                    brNoCaseRightBrace);
  28.   This type defines allowed responses to the FindBrace event.
  29.  
  30. TLEPaintStyle   = (dsNone, dsDirect, dsUseMemoryDC);
  31.   This type defines the types of painting allowed in the LEdit component.
  32.  
  33. TLEBookmarkStyle = (bmInActive, bmForeColor, bmBackColor, bmFullColor);
  34.   This type defines the types of Bookmark settings allowed in the
  35.   BookmarkAttr property.
  36.  
  37. TLESearchDir = (sdUp, sdDown, sdDownWithWrap);
  38.   This type defines the types of Search Direction settings allowed in the
  39.   SearchDirection property.
  40.  
  41. TLEModifyFlag   = 0..15;
  42.   This defines the range of valid values for the ModifyFlagNumber property.
  43.  
  44. TLETabStopSize  = 1..40;
  45.   This defines the range of valid values for the TabStopSize property.
  46.  
  47. TLEBookmarkNum = 0..15;
  48.   This defines the range of valid values for the BookmarkNumber property.
  49.  
  50. ================================================================================
  51.  
  52. Event types
  53. -----------
  54.  
  55. TCHEvent = procedure(Sender: TObject; WordType: Word; WordValue: LongInt; 
  56.               WordStr: String; var ForeClr, BackClr: TColor) of object;
  57.   This is the event definition for the OnControlHighlight event.
  58.  
  59. TPaintEvent = procedure(Sender: TObject; DCHandle: HDC; 
  60.               ClientArea: TRect) of object;
  61.   This is the event definition for the OnPaint event.
  62.  
  63. TFBEvent = procedure(Sender: TObject; WordType: Word; WordValue: LongInt;
  64.               WordStr: String; var BraceType: TLEBraceStyle) of object;
  65.   This is the event definition for the OnFindBrace event.
  66.  
  67. TWordClickEvent = procedure(Sender: TObject; WordType: Word; WordValue: LongInt;
  68.               WordStr: String; var WordHandled: Boolean) of object;
  69.   This is the event definition for the OnWordClick event.
  70.  
  71. ================================================================================
  72.  
  73. Methods
  74. -------
  75.  
  76. procedure AddStr(AStr: String);
  77.   This method allows you to pass a Pascal style string and it will be added
  78.   to the end of the text. The cursor will be set to the beginning of the
  79.   text that is added. The LFocus property determines if Focus is set to the 
  80.   LEdit control after this procedure is complete.
  81.  
  82. procedure BurnHandle(BHandle: Word);
  83.   This method allows you to pass a handle and it will free the memory 
  84.   associated with that handle. The primary purpose of this method is to
  85.   provide an easy way to free global memory that is you allocate to store
  86.   text in. It is basically a wrapper for the Windows API GlobalFree method.
  87.   When you read the Text or SelText propertys, global memory is allocated
  88.   to hold the text. When you are finished using this text, you need to
  89.   call the BurnHandle method and pass it the Handle returned from the Text
  90.   or SelText property. It is very important to call this method before
  91.   your program ends, if you read the Text or SelText property. If you
  92.   don't, your program will develop a memory leak.
  93.  
  94. procedure Clear;
  95.   This method will clear all the text from LEdit. If this is done, Undo is
  96.   not possible.
  97.  
  98. procedure ClearSelection;
  99.   This method will clear all selected text from LEdit.
  100.  
  101. procedure CopyToClipboard;
  102.   This method will copy the selected text to the Windows clipboard.
  103.  
  104. procedure CutToClipboard;
  105.   This method will clear the selected text and place a copy of it to
  106.   the Windows clipboard.
  107.  
  108. procedure DeleteLine(LineNumber: LongInt);
  109.   This method will delete the line passed in LineNumber.
  110.  
  111. procedure DeleteSelection;
  112.   This method will clear all selected text from LEdit. It is identical to
  113.   the ClearSelection property and was created to make it compatible with
  114.   the VBX and OWL packages. The ClearSelection property was kept to keep
  115.   it compatible with the Delphi TMemo component.
  116.  
  117. procedure Duplicate;
  118.   This property duplicates the currently selected block. This is equivalent
  119.   to CopyToClipboard followed by PasteFromClipboard, so the clipboard is used.
  120.  
  121. procedure EmptyUndoBuffer;
  122.   This method will clear the text from the Undo buffer.
  123.  
  124. procedure FindBookmark;
  125.   This method will immediately jump to a bookmark that was set with the
  126.   SetBookmark method.
  127.  
  128. procedure FindBrace;
  129.   This method will find a match to the current brace. The OnFindBrace event
  130.   determines what is considered a brace.
  131.  
  132. procedure FindNext;
  133.   This method will find the next word in a search. It repeats the last search
  134.   performed.
  135.  
  136. procedure GetSelection;
  137.   This method will get the starting and ending character positions of the
  138.   current selection. These positions are reflected in the StartLine, StartPos,
  139.   EndLine, and EndPos properties.
  140.  
  141. procedure GotoBookmark(BmNum: Word);
  142.   This method will jump to the bookmark number BmNum. This must be a valid
  143.   bookmark and must be in the range of 0 to 15.
  144.  
  145. procedure InsertStr(IStr: String);
  146.   This method will insert a Pascal style string at the current cursor location.
  147.   If some text is selected, it will replace the selected text with the string.
  148.   The LFocus property determines if Focus is set to the LEdit control after 
  149.   this procedure is complete.
  150.  
  151. procedure InsertStrPos(LineNumber: LongInt; PosNumber: Integer; IStr: String);
  152.   This method will insert a Pascal style string at the line LineNumber and at
  153.   the PosNumber position within that line.  The LFocus property determines if 
  154.   Focus is set to the LEdit control after this procedure is complete.
  155.  
  156.  
  157. procedure NewFile;
  158.   This method clears LEdit and begins a new file. It is equivilent to the
  159.   New menu item in most Windows programs. it creates an <<untitled>> file.
  160.   The HasFile property must be set to True to use this method.
  161.  
  162. procedure OpenFile;
  163.   This method displays an open dialog and allows the user to select a file
  164.   to load into LEdit or to specify a new filename to create a new file. The
  165.   HasFile property must be set to True to use this method.
  166.  
  167. procedure PasteFromClipboard;
  168.   This method will copy any text existing in the Windows clipboard into LEdit.
  169.  
  170. procedure Redo;
  171.   This method will redo the last undone action.  It is the opposite of Undo.
  172.  
  173. procedure ReloadFile;
  174.   This method loads the current file into LEdit again. In effect it resets the
  175.   file to the condition it was in the last time it was saved. The HasFile
  176.   property must be set to True to use this method.
  177.  
  178. procedure SaveFile;
  179.   This method displays a save dialog and allows the user to set a file to
  180.   save the text to within LEdit. It only displays the dialog if a filename
  181.   has not been set. Then it saves the text to this file. If a filename has
  182.   already been set then this method saves the text to that file without
  183.   displaying the dialog. The HasFile property must be set to True to use this
  184.   method.
  185.  
  186. procedure SaveFileAs;
  187.   This method is similar to the SaveFile method except it displays the save
  188.   dialog every time it is called. This allows you to save the file with a
  189.   different name. The HasFile property must be set to True to use this method.
  190.  
  191. procedure SelectAll;
  192.   This method sets all the text in LEdit to selected.
  193.  
  194. procedure SetBookmark;
  195.   This method sets a bookmark in the LEdit text. The bookmark will be set to
  196.   the current cursor location. When a bookmark is set, the FindBookmark method
  197.   can be used to immediately jump to the bookmark.
  198.  
  199. procedure SetBookmarkNum(BmNum: Word);
  200.   This method sets a bookmark in the LEdit text. The bookmark will be set to
  201.   the current cursor location. It will set the bookmark to bookmark number 
  202.   BmNum. You can use GotoBookmark to return to this bookmark.
  203.  
  204. procedure SetScan;
  205.   This method moves the reading pointer to the top of the text and allows the
  206.   GetWord and NextLine methods to operate. Any changes to the text or upon
  207.   reaching the end of the file will disable the ability to use GetWord and
  208.   NextLine. Therefore it is best to set the ReadOnly property to True while
  209.   scanning the text.
  210.  
  211. procedure SetSelection;
  212.   This method selects a range of characters. The values set in the StartLine,
  213.   StartPos, EndLine and EndPos properties determine where the selection is
  214.   made.
  215.  
  216. procedure ShowFindDialog;
  217.   This method displays a Find dialog to allow you to search for text within
  218.   LEdit.
  219.  
  220. procedure ShowFontDialog;
  221.   This method displays a Font dialog to allow you to set the font in
  222.   LEdit.
  223.  
  224. procedure ShowGotoLineDialog;
  225.   This method displays a Goto Line dialog to allow you to go to a specific
  226.   line number in LEdit.
  227.  
  228. procedure ShowReplaceDialog;
  229.   This method displays a Replace dialog to allow you to perform a search and
  230.   replace in LEdit.
  231.  
  232. procedure Undo;
  233.   This method undoes the last action. It is the opposite of Redo.
  234.  
  235. function Find(FindText: String): Word;
  236.   This method searches for FindText within LEdit and highlights it if it is
  237.   found. This allows a search to be performed without using the built-in search
  238.   dialog. This stops when it finds the next occurance of FindText.
  239.  
  240. function GetCurrentWord: Word;
  241.   This method gets the word at the current cursor position. The Syntax property
  242.   determines what is considered a word. The word information is placed into the
  243.   WordDesc property. See the WordDesc property for details.
  244.  
  245. function GetLine(Buffer: PChar; LineNumber: LongInt): Word;
  246.   This method gets the current line and places it into Buffer. Buffer must
  247.   be large enough to hold an entire line (8K) of text. LineNumber is the
  248.   number of the line to get. It returns the number or characters placed into
  249.   Buffer.
  250.  
  251. function GetLineStr(LineNumber: LongInt): String;
  252.   This method gets the line at LineNumber and returns up to 255 characters
  253.   of it as a Pascal style string. If the line is blank, it will return a
  254.   null string.
  255.  
  256. function GetRestOfLine(Buffer: PChar): Word;
  257.   This method gets the line from the scanning position to the end of the
  258.   line and places it into Buffer. Buffer must be large enough to hold all
  259.   the text. It returns the number of characters placed into Buffer. It
  260.   doesn't move scrolling position.
  261.  
  262. function GetScan: Word;
  263.   This method retrieves the position of last item received by the scanning
  264.   methods. If last method called NewLine then it returns a pointer to the
  265.   beginning of the line. The position is place into a the StartLine,
  266.   StartPos, EndLine and EndPos properties.
  267.  
  268. function GetStr: String;
  269.   This method gets the current line, from the cursor position to the end
  270.   of the line, and returns up to 255 characters of it as a Pascal style 
  271.   string. If some text is selected, then this will get the selected text
  272.   and return it (up to 255 characters). If the line is blank, it will return
  273.   a null string.
  274.  
  275. function GetWord(SkipLines: Boolean): Word;
  276.   This method gets the next word from the current reading position and moves 
  277.   the position pointer to the character after this word. The Syntax property 
  278.   determines what is considered a word. The word information is placed into the
  279.   WordDesc property. See the WordDesc property for details.
  280.  
  281. function LoadFromFile(Filename: String): Word;
  282.   This method loads the file specified in Filename into LEdit.
  283.  
  284. function LineLength(LineNumber: LongInt): Word;
  285.   This method returns the length of a line.  LineNumber specifies which line
  286.   to return the length of.
  287.  
  288. function NextLine: Word;
  289.   This method moves the reading position used by GetWord to the start of next
  290.   line.
  291.  
  292. function Replace(FindText: String; ReplaceText: String): Word;
  293.   This method searches for FindText within LEdit and replaces it with ReplaceText
  294.   if it is found. This allows a search and replace to be performed without using
  295.   the built-in search and replace dialog. This only replaces the next occurance
  296.   of FindText found.
  297.  
  298. function ReplaceAll(FindText: String; ReplaceText: String): LongInt;
  299.   This method searches for FindText within LEdit and replaces it with ReplaceText
  300.   if it is found. This allows a search and replace to be performed without using
  301.   the built-in search and replace dialog. This is the same as Replace, except it
  302.   replaces all occurances of FindText.
  303.  
  304. function SaveToFile(Filename: String): Word;
  305.   This method saves the text in LEdit to the file specified in Filename.
  306.  
  307. ================================================================================
  308.  
  309. Runtime only properties
  310. -----------------------
  311.  
  312. property BookmarkAttr: TLEBookmarkStyle;
  313.   Changes bookmark attributes. Only the bookmark with its number set into
  314.   the BookmarkNumber property is affected. The following are the valid
  315.   settings:
  316.  
  317.   Value   Meaning
  318.   ---------------------------------------------------------------------
  319.   bmInactive   Bookmark will not be colored
  320.   bmForeColor  Bookmark text will be colored with the color set in
  321.                the BookmarkForeColor property. Default is Yellow
  322.   bmBackColor  Bookmark background will be colored with the color set in
  323.                the BookmarkBackColor property. Default is Red
  324.   bmFullColor  Both bmForeColor and bmBackColor
  325.  
  326. property BookmarkBackColor: TColor;
  327.   Specifies the background color to be used to highlight a bookmark. Only 
  328.   the bookmark with its number specified in the BookmarkNumber property is
  329.   affected.
  330.  
  331. property BookmarkForeColor: TColor;
  332.   Specifies the text color to be used to highlight a bookmark. Only the
  333.   bookmark with its number specified in the BookmarkNumber property is 
  334.   affected.
  335.  
  336. property BookmarkLine: LongInt;
  337.   Sets or gets the number of the line that corresponds to the bookmark 
  338.   with its number set in the BookmarkNumber property. Actually it sets 
  339.   or gets the bookmark. As the user edits the text, the line number
  340.   may change, so the number returned by this property may differ from
  341.   the number set.
  342.  
  343. property BookmarkNumber: TLEBookmarkNum;
  344.   Used by BookmarkLine, BookmarkAttr, BookmarkBackColor and 
  345.   BookmarkForeColor to determine the bookmark number to be used.
  346.  
  347. property CanClose: Boolean;
  348.   Read only. This property is set by LEdit and specifies whether the
  349.   application can close or not. It returns True only if all the events allow
  350.   it to close. See LEdit documentation for more details.
  351.  
  352. property CanFindNext: Boolean;
  353.   Read only. This property is set by LEdit and specifies whether the
  354.   search word exists. If the search word exists, then this property will be
  355.   set to True.
  356.  
  357. property CanRedo: Boolean;
  358.   Read only. This property is set by LEdit and specifies whether Redo
  359.   is possible. If it is set to True then Redo is possible.
  360.  
  361. property CanUndo: Boolean;
  362.   Read only. This property is set by LEdit and specifies whether Undo
  363.   is possible. If it is set to True then Undo is possible.
  364.  
  365. property FirstVisibleLine: LongInt;
  366.   Read only. This property returns the number of the first visible line
  367.   in LEdit.
  368.  
  369. property FirstVisiblePos: Word;
  370.   Read only. This property returns the number of the first visible position
  371.   within a line in LEdit.
  372.  
  373. property IsLEdit: Boolean;
  374.   Read only. This property determines whether the window is a LEdit window.
  375.  
  376. property LFocus: Boolean;
  377.   This property is used by the AddStr, InsertStr, and InsertStr methods to
  378.   determine if focus should be set to the LEdit control after the methods
  379.   are complete. The default is True.
  380.  
  381. property LineCount: LongInt;
  382.   Read only. This property returns the total number of lines of text in
  383.   LEdit.
  384.  
  385. property MenuPopUpHandle: Word;
  386.   Read only. This property returns a Handle to the popup menu in LEdit. This
  387.   allows the popup menu to be modified.
  388.  
  389. property Modified: Boolean;
  390.   This property determines if the text in LEdit has been modified. LEdit will
  391.   set it to True if text is modified. When you set this property, it will set
  392.   the modified status of whichever modify flag number is set in the
  393.   ModifyFlagNumber property.
  394.  
  395. property ModifyFlagNumber: TLEModifyFlag;
  396.   This property contains the number of the Modified flag currently being used
  397.   by LEdit. It can contain values in the range of 0 to 15. This provides 16
  398.   modified flags that can be used for nearly any purpose. Flags number 0
  399.   and 1 have special meaning. See LEdit documentation.
  400.  
  401. property MsgResult: LongInt;
  402.   This property allows you to specify the return result in the events. This
  403.   property should be set from within each event that is used. The following
  404.   are the valid values:
  405.  
  406.   Value                Meaning
  407.   ---------------------------------------------------------------------
  408.   cmd_DoItYourself     LEdit should handle the action itself.
  409.   cmd_ReplyYes         It is Ok for LEdit to perform the action.
  410.   cmd_ReplyOK          Same as cmd_ReplyYes.
  411.   cmd_ReplyNo          LEdit should not perform the action.
  412.   cmd_ReplyCancel      LEdit should Cancel the action.
  413.  
  414. property SearchReplaceString: String;
  415.   Read only. This property returns the text that will be used as the 
  416.   replacement text in a search/replace operation.
  417.  
  418. property SearchFindString: String;
  419.   Read only. This property returns the text that will be used as the 
  420.   search text in a search or search/replace operation.
  421.  
  422. property SearchDirection: TLESearchDir;
  423.   This property contains the search setting for the direction that a 
  424.   search or search/replace operation will search for the text. The 
  425.   default is sdDown. The following are the valid settings:
  426.  
  427.   Value           Meaning
  428.   ---------------------------------------------------
  429.   sdUp            Search operation will search up.
  430.   sdDown          Search operation will search down.
  431.   sdDownWithWrap  Search operation will search down 
  432.                   and will wrap to the top when it 
  433.                   reaches the bottom of the file.
  434.  
  435. property SearchWholeWords: Boolean;
  436.   This property contains the search setting to determine if the search
  437.   will only search for whole words or not. If this is set to True, then 
  438.   the search operation will only stop on a word if it is a whole word 
  439.   and matches the text being searched for. If it is set to False, then
  440.   the search operation will also find the text if it is contained within
  441.   a word. The default is False.
  442.  
  443. property SearchMatchCase: Boolean;
  444.   This property contains the search setting to determine if the search
  445.   will only search for words that match the text exactly (case sensitive).
  446.   If it is set to True, then the search is case sensitive. If it is set to
  447.   False, then the search fill find text without regard to case. The default
  448.   is False.
  449.  
  450. property SelLength: LongInt;
  451.   Read only. This property returns the number of characters in the selected
  452.   text.
  453.  
  454. property SelText: THandle;
  455.   This property works exactly the same as the Text property described below,
  456.   but works with any selected text instead of all the text. When you read
  457.   this property, it allocates global memory, places a copy of any selected
  458.   text into it, and returns a handle to the memory. This handle must be
  459.   freed when you are finished with it by calling the BurnHandle method and
  460.   passing it this Handle. You can also allocate your own memory and, place
  461.   text into it, and then set this property to the Handle of the memory
  462.   you created. This will replace any selected text in LEdit with your text.
  463.   If no text is selected, then this text will be inserted at the cursor
  464.   location. See the Text property and BurnHandle method for more information.
  465.   This property is not compatible with the 32-bit version. The 32-bit version
  466.   is a Delphi 2.0 long string.
  467.  
  468. property SelTextHandle: THandle;
  469.   This property works exactly the same as the SelText property. It is provided
  470.   for compatiblity with the 32-bit version. If you are planning on upgrading
  471.   to the 32-bit version, it is best to use this property because the SelText
  472.   property in the 32-bit version is a Delphi 2.0 long string.
  473.  
  474. property Text: THandle;
  475.   When this property is read, it allocates a block of Global memory and places
  476.   a copy of the text, in the LEdit control, into it. It then returns a Handle 
  477.   to the block of memory. When you access this block of memory, you should
  478.   call the Windows API GlobalLock method first. This will return to you a 
  479.   pointer to the text which you can use however you wish. It is probably best
  480.   to typecast the pointer to a PChar type when using it so it is type 
  481.   compatible with most other text handling methods. When you are finished
  482.   with the text, you need to call the BurnHandle method and pass this handle
  483.   to it. This will free the memory block allocated to the text. See the 
  484.   BurnHandle method for details. You can also allocate a block of memory
  485.   youself and place text into it. Then set the Text property to the Handle
  486.   of the block of memory you created. This will place a copy of the text, in
  487.   the block of memory you created, into LEdit. This property is not compatible 
  488.   with the 32-bit version. The 32-bit version is a Delphi 2.0 long string.
  489.  
  490.     Example:
  491.  
  492.     var
  493.       MemoryHandle: THandle;
  494.  
  495.     { To have LEdit allocate a block of memory and place a copy of
  496.       the text in LEdit into it }
  497.     procedure TForm1.Button3Click(Sender: TObject);
  498.     var
  499.       MemoryPointer: Pointer;
  500.       MemoryPChar: PChar;
  501.       Len: LongInt;
  502.     begin
  503.       MemoryHandle := LEdit1.Text;
  504.       Len := LEdit1.TextLength;
  505.       if Len > 0 then
  506.       begin
  507.         MemoryPointer := GlobalLock(MemoryHandle);
  508.         if MemoryPointer = nil then
  509.           GlobalFree(MemoryHandle)
  510.         else
  511.         begin
  512.           MemoryPChar := PChar(MemoryPointer);
  513.           { Do what you want with the PChar that is pointing to the text }
  514.           GlobalUnlock(MemoryHandle);
  515.         end;
  516.       end;
  517.     end;
  518.  
  519.     { To place the text in an existing block of memory into LEdit. This
  520.       specific example will place the text, from the above example, back
  521.       into LEdit. }
  522.     procedure TForm1.Button4Click(Sender: TObject);
  523.     var
  524.       MemoryPointer: Pointer;
  525.     begin
  526.       MemoryPointer := GlobalLock(MemoryHandle);
  527.       if MemoryPointer = nil then
  528.         GlobalFree(MemoryHandle)
  529.       else
  530.       begin
  531.         LEdit.Text := MemoryHandle;
  532.         GlobalUnlock(MemoryHandle);
  533.         BurnHandle(MemoryHandle);
  534.       end;
  535.     end;
  536.  
  537. property TextHandle: THandle;
  538.   This property works exactly the same as the Text property. It is provided
  539.   for compatiblity with the 32-bit version. If you are planning on upgrading
  540.   to the 32-bit version, it is best to use this property because the Text
  541.   property in the 32-bit version is a Delphi 2.0 long string.
  542.  
  543. property TextLength: LongInt;
  544.   Read only. This property returns the total number of characters in LEdit.
  545.  
  546. property UndoMaxBuffer: Word;
  547.   Read only. This property returns the maximum size of the undo buffer
  548.   (Undo level) that can be set.
  549.  
  550. property UnitsHorizontal: Word;
  551.   Read only. This property returns the horizontal (maximum character width) 
  552.   scrolling units in pixels.
  553.  
  554. property UnitsVertical: Word;
  555.   Read only. This property returns the vertical (line height) scrolling units
  556.   in pixels.
  557.  
  558. property WordDesc: TWordDesc;
  559.   Read only. This property provides an interface to a TWordDesc record.
  560.   This property is used in all methods and properties that use a TWordDesc
  561.   record. See LEDIT.INC for a description of the TWordDesc structure. See the
  562.   GetCurrentWord and GetWord properties.
  563.  
  564. ================================================================================
  565.  
  566. Published properties - design time
  567. ----------------------------------
  568.  
  569. property About: TLEAboutBox;
  570.   This property displays an about box for the LEdit component.
  571.  
  572. property Align: TAlign;
  573.   The Align property determines how the controls align within their 
  574.   container (or parent control). These are the possible values:
  575.  
  576.   Value         Meaning
  577.   --------------------------------------------------------------
  578.   alNone        The component remains where you place it in 
  579.                 the form. This is the default value.
  580.   alTop         The component moves to the top of the form
  581.                 and resizes to fill the width of the form. 
  582.                 The height of the component is not affected.
  583.   alBottom      The component moves to the bottom of the form 
  584.                 and resizes to fill the width of the form.
  585.                 The height of the component is not affected.
  586.   alLeft        The component moves to the left side of the 
  587.                 form and resizes to fill the height of the
  588.                 form. The width of the component is not 
  589.                 affected.
  590.   alRight       The component moves to the right side of the 
  591.                 form and resizes to fill the height of the form.
  592.                 The width of the component is not affected.
  593.   alClient      The component resizes to fill the client area 
  594.                 of a form. If a component already occupies part 
  595.                 of the client area, the component resizes to fit 
  596.                 within the remaining client area.
  597.  
  598.   If the form or a component containing other components is resized, 
  599.   the components realign within the form or control.
  600.  
  601.   Using the Align property is useful when you want a control to stay
  602.   in one position on the form, even if the size of the form changes. 
  603.   For example, you could use a panel component with a various controls 
  604.   on it as a tool palette. By changing Align to alLeft, you guarantee
  605.   that the tool palette always remains on the left side of the form 
  606.   and always equals the client height of the form.
  607.   See Delphi help for details.
  608.  
  609. property AutoIndent: Boolean;
  610.   This property turns on and off auto-indent. If it is set to True then
  611.   auto-indent is turned on. The default is False.
  612.  
  613. property BackColorSelected: TColor;
  614.   This property sets the background color of selected text within LEdit.
  615.   The default is clHighlight. See Delphi help for TColor for details.
  616.  
  617. property BorderStyle: TBorderStyle;
  618.   This property sets the style of the border around the LEdit component.
  619.   The default is bsSingle.
  620.  
  621.   These are the possible values:
  622.  
  623.   Value       Meaning
  624.   ------------------------------------------
  625.   bsNone      No visible border
  626.   bsSingle    Single-line border
  627.  
  628. property CanChangeFile: Boolean;
  629.   This property determines if the LEdit internal popup menu contains items that
  630.   allow the user to open a new or existing file. If it is set to True then the
  631.   popup menu will contain items to open a new or existing file. The HasFile
  632.   property must be set to True. The default is True.
  633.  
  634. property CanChangeFont: Boolean;
  635.   This property determines if the LEdit internal popup menu contains items that
  636.   allow the user to change the font. If it is set to True then the popup menu
  637.   will contain items to change the font. The default is True.
  638.  
  639. property Color: TColor;
  640.   This property sets the background color of the LEdit window. See the Delphi
  641.   help for details.
  642.  
  643. property Ctl3D: Boolean;
  644.   This property determines whether a control has a three-dimensional (3-D) or
  645.   two-dimensional look. If Ctl3D is True, the control has a 3-D appearance. If
  646.   Ctl3D is False, the control appears normal or flat. The default value of
  647.   Ctl3D is True. See the Delphi help for details.
  648.  
  649. property CurrentWordAsText: Boolean;
  650.   When set, all operations retrieving a word from the cursor position will
  651.   receive whole words delimited with spaces, tab characters and line breaks.
  652.   Otherwise the meaning of the word is determined by current syntax. The 
  653.   default is False.
  654.  
  655. property DefaultSelection: Boolean;
  656.   This property determines the behavior when a character key or the delete
  657.   or backspace key is pressed and LEdit contains selected text. If
  658.   DefaultSelection is set to True then it forces the selected text to be
  659.   removed when a character key, the Delete key or the BackSpace key is
  660.   pressed (by executing WM_CUT). This is the default Windows behaviuor. If
  661.   DefaultSelection is set to False then only the last selected character is
  662.   replaced or deleted when a character key, the Delete key or the BackSpace
  663.   key is pressed. The default is True.
  664.  
  665. property DragCursor: TCursor;
  666.   The DragCursor property determines the shape of the mouse pointer when the
  667.   pointer is over a component that will accept an object being dragged. See the
  668.   Delphi help for details.
  669.  
  670. property DragMode: TDragMode;
  671.   The DragMode property determines the drag and drop behavior of a control.
  672.  
  673.   These are the possible values:
  674.  
  675.   Value        Meaning
  676.   ---------------------------------------------------------
  677.   dmAutomatic  If dmAutomatic is selected, the control is
  678.                ready to be dragged; the user just clicks
  679.                and drags it.
  680.   dmManual     If dmManual is selected, the control can't
  681.                be dragged until the application calls the
  682.                BeginDrag method.
  683.  
  684.   If a control's DragMode property value is dmAutomatic, the application can
  685.   disable the drag and drop capability at run time by changing the DragMode
  686.   property value to dmManual. See the Delphi help for details.
  687.  
  688. property Enabled: Boolean;
  689.   The Enabled property controls whether the control responds to mouse,
  690.   keyboard, and timer events. If Enabled is True, the control responds
  691.   normally. If Enabled is False, the control ignores mouse and keyboard
  692.   events. See the Delphi help for details.
  693.  
  694. property EndLine: LongInt;
  695.   This property allows the end line to be set. This is used for all methods
  696.   that use the TLEditPosition record (such as SetSelection and GetSelection).
  697.   See the GetScan property.
  698.  
  699. property EndPos: Integer;
  700.   This property allows the end position within the end line to be set. This
  701.   is used for all methods that use the TLEditPosition record (such as
  702.   SetSelection and GetSelection). See the GetScan property.
  703.  
  704. property ExtraHorzSpacing: TLESpaceStyle;
  705.   This property allows extra horizontal spacing to be set in LEdit. Sometimes
  706.   it is difficult to see the cursor when it is right against the edge of the
  707.   component. This allows you to set that edge to be indented a particular
  708.   number of pixels. The default is slNone.
  709.  
  710.   These are the possible values:
  711.  
  712.   Value          Meaning
  713.   ----------------------------------
  714.   slNone         Not indented
  715.   slSmall        Indented 2 pixels
  716.   slMedium       Indented 4 pixels
  717.   slLarge        Indented 6 pixels
  718.  
  719. property ExtraVertSpacing: TLESpaceStyle;
  720.   This property allows extra vertical spacing to be set in LEdit. This is the
  721.   amount of space between lines. The purpose of this is to allow better
  722.   readability of some fonts. The default is slNone.
  723.  
  724.   These are the possible values:
  725.  
  726.   Value          Meaning
  727.   ---------------------------------------
  728.   slNone         No extra pixel spacing
  729.   slSmall        2 pixels extra spacing
  730.   slMedium       4 pixels extra spacing
  731.   slLarge        6 pixels extra spacing
  732.  
  733. property FileMask: String;
  734.   This property allows you to set the mask for the Open dialog. It can accept
  735.   the mask as the standard Delphi file Filter property, or it can accept the
  736.   mask as the LEdit DLL requires. See the Delphi help for the Filter property
  737.   for details of how to use this property. Also see the LEdit documentation for
  738.   details of the LEdit style. This property will accept both styles.
  739.  
  740. property FileName: String;
  741.   This property allows the filename to be set for any file operations
  742.   performed in LEdit. This property contains some special behaviors. If the
  743.   InitializeType property is set to isFile and the name of a file is specified
  744.   in this property, then the file will be automatically loaded upon startup.
  745.   If the InitializeType property is set to isFile and this property is set to
  746.   '+', then an Open dialog will be displayed upon startup to allow the user to
  747.   select a file to load into LEdit upon startup. If InitializeType is set to
  748.   isCustom, then this property is used for any other file operations. This
  749.   property also works at design time.
  750.  
  751. property Font: TFont;
  752.   This property allows you to set the font and the font attributes (foreground
  753.   color, etc.) in LEdit. See the Delphi help for details.
  754.  
  755. property ForeColorSelected: TColor;
  756.   This property sets the foreground color of selected text within LEdit. The
  757.   default is clHighlightText. See the Delphi help on TColor for details.
  758.  
  759. property GroupNumber: Word;
  760.   This property specifies the number of a group. It should be set to 0 if 
  761.   groups are not used. If it is not zero, then all controls with the same
  762.   GroupNumber are united into a single group and share some attributes - 
  763.   currently Find/Replace dialogs and Insert/Overwrite status. The default
  764.   is 0.
  765.  
  766. property HasFile: Boolean;
  767.   This property determines whether LEdit stores file information internally or
  768.   not. If it is set to True then LEdit automatically handles files. That is, it
  769.   stores the filename, it can automatically load and save files and it checks
  770.   whether the user saved the files or not. See the LEdit documentation for
  771.   details. The default is True.
  772.  
  773. property HasMenu: TLEPopupStyle;
  774.   This property allows the type of popup menu to be set. LEdit contains its
  775.   own internal popup menu and Delphi contains its own way of handling popup
  776.   menus. This allows either to be used. The default is psDelphi.
  777.  
  778.   These are the possible values:
  779.  
  780.   Value          Meaning
  781.   ----------------------------------
  782.   psNone         No popup menu
  783.   psStandard     LEdit popup menu
  784.   psDelphi       Delphi popup menu
  785.  
  786. property Highlight: Boolean;
  787.   This property causes the control to begin firing the OnControlHighlight
  788.   event. This allows it to determine which colors to use when drawing each
  789.   word. The default is False.
  790.  
  791. property InitializeType: TLEInitStyle;
  792.   This property determines the way LEdit is initialized. It can be initialized
  793.   with a File or any custom way you desire. If this is set to isFile, then
  794.   the Filename property determines which file is loaded. See the FileName
  795.   property for details. If isCustom is set, then the OnTimeToLoadText event
  796.   is fired upon startup to allow you to initialize it any way you wish. See
  797.   OnTimeToLoadText event for details. The default is isCustom.
  798.  
  799.   These are the possible values:
  800.  
  801.   Value          Meaning
  802.   -------------------------------------------------------
  803.   isFile         Initialize with a file
  804.   isText         Initialize with text (not yet available)
  805.   isCustom       Initialize in a custom designed manner
  806.  
  807. property InsertMode: Boolean;
  808.   This property turns on or off Insert mode in LEdit. If it is set to True
  809.   then Insert mode is turned on. If it is set to False then Insert mode is
  810.   turned off and Overwrite mode is turned on. The default is True.
  811.  
  812. property MacStyleSave: Boolean;
  813.   This property allows you to save a file out as a Macintosh style file. 
  814.   If set to True, LEdit uses Line Feed (CR) as line breaks when it saves 
  815.   files. Otherwise it uses Carriage Return - Line Feed(CR-LF) pairs or
  816.   just Line Feed (LF) if the UnixStyleSave property is set to True. The 
  817.   default is False. LEdit can read any of these styles of file in. If the
  818.   file is a Mac or Unix style file, it will automatically break the lines
  819.   appropriately. The loading of files works the same regardless of how 
  820.   this property is set. If both this and the UnixStyleSave property are
  821.   set to True, the UnixStyleSave property takes precedence.
  822.  
  823. property MultilineItems: Boolean;
  824.   This property allows multi-line comments and strings when it is set to
  825.   True. Otherwise comments, and strings are only recognized when they are
  826.   within a single-line. When set to true, it slows down editing slightly.
  827.   The default is False.
  828.  
  829. property PaintMode: TLEPaintStyle;
  830.   This property is used to set the mode for painting on the background of
  831.   LEdit. This allows custom backgrounds (bitmaps) to be placed behind the
  832.   text. The default is dsNone. See the OnPaint event for more details.
  833.  
  834.   These are the possible values:
  835.  
  836.   Value          Meaning
  837.   ---------------------------------------------------------
  838.   dsNone         LEdit paints its own background (Standard)
  839.   dsDirect       Allows you to paint directly to the LEdit
  840.                  background.
  841.   dsUseMemoryDC  Allows you to paint to a bitmap in memory
  842.                  and pass this memory bitmap to LEdit. LEdit
  843.                  will then place the text over this bitmap.
  844.  
  845. property ParentColor: Boolean;
  846.   The ParentColor property determines where the control looks for its
  847.   color information. If ParentColor is True, the control uses the color
  848.   in its parent component's Color property. If ParentColor is False,
  849.   the control uses its own Color property. See the Delphi help for
  850.   details. The default is False.
  851.  
  852. property ParentCtl3D: Boolean;
  853.   The ParentCtl3D property determines where the component looks to
  854.   determine if it should appear three dimensional. If ParentCtl3D is
  855.   True, the component uses the dimensionality of its parent component's
  856.   Ctl3D property. If ParentCtl3D is False, the control uses its own
  857.   Ctl3D property. See the Delphi help for details.
  858.  
  859. property ParentFont: Boolean;
  860.   The ParentFont property determines where the control looks for its font
  861.   information. If ParentFont is True, the control uses the font in its
  862.   parent component's Font property. If ParentFont is False, the control
  863.   uses its own Font property. See the Delphi help for details.
  864.  
  865. property ParentShowHint: Boolean;
  866.   The ParentShowHint property determines where the control looks to find
  867.   out if Help Hint, specified as the value of the Hint property for the
  868.   control, should be shown. If ParentShowHint is True, the control uses
  869.   the ShowHint property value of its parent. If ParentShowHint is False,
  870.   the control uses its own ShowHint property. See the Delphi help for
  871.   details.
  872.  
  873. property PopupMenu: TPopupMenu;
  874.   The PopupMenu property identifies the name of the pop-up menu that
  875.   appears when the user selects the component and presses the right mouse
  876.   button (if the pop-up menu's AutoPopup property is True), or when the
  877.   Popup method of the pop-up menu executes. This property allows you to
  878.   attach LEdit to a Delphi popup menu component. See the Delphi help for
  879.   details.
  880.  
  881. property ReadOnly: Boolean;
  882.   The ReadOnly property determines if the user can change the contents of
  883.   the control. If ReadOnly is True, the user can't change the contents. If
  884.   ReadOnly is False, the user can modify the contents. The default is False.
  885.  
  886. property ScrollBars: TLEScrollStyle;
  887.   This property allows you to turn on and off scroll bars on LEdit. The
  888.   default is ssNone.
  889.  
  890.   These are the possible values:
  891.  
  892.   Value          Meaning
  893.   ---------------------------------------------------------
  894.   lsNone         No scroll bars are placed on LEdit
  895.   lsHorizontal   A horizontal scroll bar is placed on LEdit
  896.   lsVertical     A vertical scroll bar is placed on LEdit
  897.   lsBoth         Both vertical and horizontal scroll bars
  898.                  are placed on LEdit
  899.  
  900. property ShowHint: Boolean;
  901.   The ShowHint property determines if the control should display a Help
  902.   Hint when the user's mouse pointer rests momentarily on the control. The
  903.   Help Hint is the value of the Hint property, which is displayed in a box
  904.   just beneath the control. If the ShowHint property is True, the Help Hint
  905.   will appear. If ShowHint is False, the Help Hint may or may not appear.
  906.   If ParentShowHint is False also, the Help Hint won't appear. If, however,
  907.   ParentShowHint is True, whether or not the Help Hint appears depends on
  908.   the setting of the ShowHint property of the control's parent.
  909.  
  910.   Changing the ShowHint value to True automatically sets the ParentShowHint
  911.   property to False. The default value is False. See the Delphi help for
  912.   details.
  913.  
  914. property StartInComments: Boolean;
  915.   This property forces the syntax analizer to think that there is a left 
  916.   comment at the beginning of the text. This helps for syntax highlighting
  917.   HTML tags. The '<' can be set as the ending comment sign and the '>' can
  918.   be set as the starting comment sign. If there is plain text at the start
  919.   of the file, then this property will cause it to be regarded as a comment
  920.   so it is treated the same as the rest of the commented text. See the FAQ 
  921.   for more details on HTML syntax highlighting. This property works only if
  922.   the MultilineItems property is set to True. The default is False.
  923.  
  924. property StartLine: LongInt;
  925.   This property allows the start line to be set. This is used for all methods
  926.   that use the TLEditPosition record (such as SetSelection and GetSelection).
  927.   See the GetScan property.
  928.  
  929. property StartPos: Integer;
  930.   This property allows the start position within the start line to be set. 
  931.   This is used for all methods that use the TLEditPosition record (such as
  932.   SetSelection and GetSelection). See the GetScan property.
  933.  
  934. property Syntax: String;
  935.   This property allows you to set the syntax that defines what a word is to 
  936.   LEdit. This can be used for many of the methods and properties in the LEdit
  937.   component. This is the property that allows you to customize the behavior of
  938.   the syntax analyzer for syntax color highlighting. The following explains how 
  939.   the syntax string must be set up.
  940.  
  941.   The syntax string is composed of several fields between 1 and 3 bytes each.
  942.   Spaces, tabs and line breaks are considered natural delimiters. The problem
  943.   with this, though, is that some expressions may be considered one word when
  944.   they are in fact more than one word. For example, take the expression
  945.   "wordA:=(wordB);". Using the natural delimiters, this would be considered
  946.   as one word, when it is in fact more than one word. In this case, we would
  947.   want the syntax analyzer to consider ':', '=', '(', and ')' as delimeters
  948.   also. Given this, we actually have what we would consider three words: 
  949.   'wordA', 'wordB' and ';'. It is extremely important to consider what is a
  950.   word and what is a delimiter. For example, the expression '(wordA = wordB);'
  951.   is quite different than the above expression and would be defined differently.
  952.   We want the above expression to be evaluated as if it were defined as
  953.   "wordA : = ( wordB ) ;" using natural delimiters.
  954.  
  955.   The syntax property simply enumerates such words/delimiters like ':' or '('.
  956.   If ':' is included in the syntax then 'wordA:' actually represents two words,
  957.   'wordA' and ':'. If it is not included in the syntax, then it would be
  958.   considered one word as 'wordA:'. This could be useful in mailers where we
  959.   would want words such as 'Subject:' or 'From:' to be considered as one word.
  960.  
  961.   In Pascal, we have the delimiters ':' and '=', but also have ':=' which needs
  962.   to be considered as a two character word consisting of the delimiters ':' and
  963.   '='. So we must tell LEdit that ':=' is a separate word. In this case, the
  964.   expression above would be split into 'wordA', ':=', '(', 'wordB', ')', and
  965.   ';'. That is exactly what we need for Pascal syntax. So we end up with a list
  966.   of syntax words ':', '=', '(', ')', and ':='. Each of them will be placed
  967.   into one TSyntax structure. To have many of these, we will need an array of
  968.   TSyntax structures. This is basically what the Syntax property provides. A
  969.   combination of characters in the string will be used to fill an array of
  970.   TSyntax structures. The string will need to be filled in the following manner.
  971.  
  972.   A value of 0 causes the syntax to be reset to the default.
  973.   A value of 1 means that the next single character will be considered as a
  974.     word or delimiter.
  975.   A value of 2 means that the next two characters will be considered as a word.
  976.  
  977.   So to create the structure for our example above, we would make the string as
  978.   '1:1=1(1)2:='. This signifies one character of ':', one character of '=', one
  979.   character of '(', one character of ')' and two characters of ':='.
  980.  
  981.   In our Pascal example, we would also need to strip out comments. For example,
  982.   'wordA{this is the first word} := (wordB){this is the second};' should be
  983.   considered the same as our above example. The comments need to be omitted.
  984.   To handle this, the first five fields in the Syntax string have a special
  985.   meaning as follows:
  986.  
  987.   Field   Meaning
  988.   -----   ----------------------------------------------------------------------
  989.     1     Quote character. In Pascal this would be '. A second character also
  990.           needs to be defined in this field as a magic character that represents
  991.           a quote inside a string. In Pascal, this is also a single quote as '.
  992.           So, if we are defining the string for Pascal, this field would consist
  993.           of two quotes and would be defined as 2''.
  994.     2     Alternative Quote character. This is the same as field 1 and defines
  995.           an alternative quote character.
  996.     3     Comment character. This defines a comment character. But it is
  997.           different than field 4 below. This comment character defines a
  998.           character where all text following it is considered a comment and is
  999.           skipped. Any text following this character within the same line cannot
  1000.           be highlighted. This could be used for the C comment character '//'.
  1001.           If we are defining a string for C, this field would consist of '//'
  1002.           and would be defined as 2//.
  1003.     4     Starting (or Left) Comment Sign. This is the opening comment
  1004.           character. All text following this character up to the Ending Comment
  1005.           Sign character (field 5) is regarded as a comment and is skipped. It
  1006.           cannot be highlighted. So if we are defining the string for Pascal,
  1007.           this field would consist of { and would be defined as 1{.
  1008.     5     Ending (or Right) Comment Sign. This is the closing comment
  1009.           character. All text after the Starting Comment Sign (field 4) and
  1010.           before this character is considered a comment and cannot be 
  1011.           highlighted. In our Pascal example, this field would consist of } and
  1012.           would be defined as 1}.
  1013.  
  1014.   These five fields must be the first five fields defined in the string. If you
  1015.   do not wish to define any of these five fields, then the value in that 
  1016.   position must contain the value 0 (zero).
  1017.  
  1018.   So the complete Syntax string for our Pascal example would be defined as
  1019.   2''001{1}1:1=1(1)2:=  This would define ' as the quote character, no
  1020.   alternative quote character, no comment character, { as the starting comment
  1021.   sign, } as the ending comment sign, and :, =, (, ) and := as word delimiters.
  1022.  
  1023.   The Syntax for C++ would be defined as 2"\2'\2//2/*2*/1:1=1(1)2:= to signify
  1024.   "\ as the quote character, '\ as the alternate quote character, // as the
  1025.   comment character, /* as the starting comment sign, */ as the ending comment
  1026.   sign, and :, =, (, ) and := as word delimiters.
  1027.  
  1028.   In some cases, the meaning of the delimiter can change depending upon where
  1029.   it lies in the word. For example, the word 'teleport.com' should not be
  1030.   treated as two separate words. We would want 'teleport.com' or '1.50' to be
  1031.   considered as one word, while 'end.' would be considered two words, 'end'
  1032.   and '.'. The period will be defined as a soft delimiter instead of a hard
  1033.   delimiter. To do this, you need to include '2. ' (two, point, space) in the
  1034.   Syntax string. To define the period as a hard delimiter, you would define it
  1035.   as '1.' (one, point).
  1036.  
  1037.   The maximum length of this string is 254 characters. See the em_SetSyntax
  1038.   message in the LEdit documentation for more information. Keep in mind that
  1039.   the component is a string value and the LEdit documentation describes the
  1040.   syntax as a null terminated string (PChar). This string is actually parsed
  1041.   and sent to the LEdit DLL in the format described in the LEdit documentation.
  1042.  
  1043. property TabOrder: TTabOrder;
  1044.   The TabOrder property indicates the position of the control in its 
  1045.   parent's tab order, the order in which controls receive the focus 
  1046.   when the user presses the Tab key. TabOrder is meaningful only if 
  1047.   the TabStop property is True. See the Delphi help for details.
  1048.  
  1049. property TabStop: Boolean;
  1050.   The TabStop property determines if the user can tab to a control. If 
  1051.   TabStop is True, the control is in the tab order. If TabStop is False, 
  1052.   the control is not in the tab order; therefore, the user can't press 
  1053.   the Tab key to move to the control. The default is True.
  1054.  
  1055. property TabStopSize: TLETabStopSize;
  1056.   This property allows you to set the size of tab stops in character units. 
  1057.   It can be within the range of 1 to 40. The default is 1.
  1058.  
  1059. property UndoDepth: Word;
  1060.   This property allows you to set the number of Undo levels within LEdit. 
  1061.   This is the number of actions that can be undone. Each time the Undo 
  1062.   method is called, it will undo the next action in the list of undo 
  1063.   actions. If this property is set to -1 then it sets the undo depth to
  1064.   the maximum number of undo buffers allowed, as determined by the
  1065.   UndoMaxBuffer property. See the UndoMaxBuffer runtime property.
  1066.   The default is -1.
  1067.  
  1068. property UnixStyleSave: Boolean;
  1069.   This property allows you to save a file out as a Unix style file. If set
  1070.   to True, LEdit uses Line Feed (LF) as line breaks when it saves files. 
  1071.   Otherwise it uses Carriage Return - Line Feed(CR-LF) pairs. The default
  1072.   is False. LEdit can read either style of file in. If the file is a Unix
  1073.   style file, it will automatically break the lines appropriately. The
  1074.   loading of files works the same regardless of how this property is set.
  1075.  
  1076. property Version: integer;
  1077.   This property returns the version number of the LEdit DLL.
  1078.  
  1079. property Visible;
  1080.   The Visible property determines whether the component appears onscreen. If
  1081.   Visible is True, the component appears. If Visible is False, the component 
  1082.   is not visible. See the Delphi help for details.
  1083.  
  1084. property WantReturns: Boolean;
  1085.   The WantReturns property determines whether return characters the user 
  1086.   enters in the component by pressing Enter affect the text in the component, 
  1087.   or go to the form. If WantReturns is True and the user presses Enter, a 
  1088.   return character is entered into LEdit. If WantReturns is False and the 
  1089.   user presses Enter, a return is not entered into LEdit, but instead goes 
  1090.   to the form. For example, if there is a default button on a form, pressing
  1091.   Enter would choose the button instead of affecting LEdit's text.
  1092.  
  1093.   To enter return characters in LEdit when WantReturns is False, press 
  1094.   Ctrl+Enter. The default is True. See the Delphi help for details.
  1095.  
  1096. property WantTabs: Boolean;
  1097.   The WantTabs property determines if tabs are enabled in the LEdit control.
  1098.   To enable tabs in LEdit, set WantTabs to True. To turn tabs off, set 
  1099.   WantTabs to False.
  1100.  
  1101.   Caution: 
  1102.     If WantTabs is True, the user can't use the Tab key to select 
  1103.     the next control on the form. The user can tab into the LEdit control, 
  1104.     but can't tab out. The default is False.
  1105.  
  1106. ================================================================================
  1107.  
  1108. Events
  1109. ------
  1110.  
  1111. property OnAskIfStoreFile: TNotifyEvent;
  1112.   This event is fired when an unsaved file is about to be closed. It is 
  1113.   always preceded by the OnGoingToClose event. 
  1114.  
  1115. property OnChange: TNotifyEvent;
  1116.   This event is fired not only when the text is changed but also when 
  1117.   the caret position is changed. This is done to faciliate status line
  1118.   management if you want to track the position of the caret.
  1119.  
  1120. property OnChangeMode: TNotifyEvent;
  1121.   This event is fired when the Insert/Overwrite mode is changed.
  1122.  
  1123. property OnClick: TNotifyEvent;
  1124.   This event is fired when the LEdit component is clicked. See the
  1125.   Delphi help for details.
  1126.  
  1127. property OnClipboardError: TNotifyEvent;
  1128.   This event is fired when a Clipboard error occurs during an attempt to
  1129.   place or read text to or from the clipboard.
  1130.  
  1131. property OnControlHighlight: TCHEvent;
  1132.   This event is fired when the Highlight property is set to True. LEdit
  1133.   fires this event for each word in the control. This allows the color of
  1134.   each word to be set to allow highlighting.
  1135.  
  1136.   The following values are passed to this event:
  1137.  
  1138.   Read Only
  1139.   ---------
  1140.   Sender: TObject    - This contains the object that called this event.
  1141.   WordType: Word     - This contains the type of the Word. See the LEdit
  1142.                        documentation for details.
  1143.   WordValue: LongInt - This contains the numeric value of the word as 
  1144.                        defined by the WordType variable.
  1145.   WordStr: String    - This contains the string value of the current word.
  1146.  
  1147.   Read and Write
  1148.   --------------
  1149.   ForeClr: TColor - This contains the current foreground color. This 
  1150.                     variable should be set to whatever forground (font) 
  1151.                     color you want the particular word returned in the
  1152.                     WordValue and WordStr variables.
  1153.   BackClr: TColor - This is the same as the ForeClr variable but returns 
  1154.                     the background color and is used to set the 
  1155.                     background color of the word.
  1156.  
  1157. property OnDblClick: TNotifyEvent;
  1158.   The OnDblClick event occurs when the user double-clicks the mouse button
  1159.   while the mouse pointer is over the component. See the Delphi help for 
  1160.   details.
  1161.  
  1162. property OnDragDrop: TDragDropEvent;
  1163.   The OnDragDrop event occurs when the user drops an object being dragged. 
  1164.   Use the OnDragDrop event handler to specify what you want to happen when 
  1165.   the user drops an object. The Source parameter of the OnDragDrop event
  1166.   is the object being dropped, and the Sender is the control the object is 
  1167.   being dropped on. The X and Y parameters are the coordinates of the 
  1168.   mouse positioned over the control. See the Delphi help for details.
  1169.  
  1170. property OnDragOver: TDragOverEvent;
  1171.   The OnDragOver event occurs when the user drags an object over a 
  1172.   component. Usually you'll use an OnDragOver event to accept an object 
  1173.   so the user can drop it. See the Delphi help for details.
  1174.  
  1175. property OnEndDrag: TEndDragEvent;
  1176.   The OnEndDrag event occurs whenever the dragging of an object ends, 
  1177.   either by dropping the object or by canceling the dragging. Use the 
  1178.   OnEndDrag event handler to specify any special processing you want 
  1179.   to occur when dragging stops. If the dragged object was dropped and 
  1180.   accepted by the control, the Target parameter of the OnEndDrag event 
  1181.   is True. If the object was not dropped successfully, the value of 
  1182.   Target is nil. See the Delphi help for details.
  1183.  
  1184. property OnEnter: TNotifyEvent;
  1185.   The OnEnter event occurs when a component becomes active. Use the
  1186.   OnEnter event handler to specify any special processing you want to 
  1187.   occur when a component becomes active. See the Delphi help for details.
  1188.  
  1189. property OnExit;
  1190.   The OnExit event occurs when the input focus shifts away from one control 
  1191.   to another. Use the OnExit event handler when you want special processing 
  1192.   to occur when this control ceases to be active. See the Delphi help for
  1193.   details.
  1194.  
  1195. property OnFileError: TNotifyEvent;
  1196.   This event is fired when an error occurs during any file operations that
  1197.   LEdit performs.
  1198.  
  1199. property OnFindBrace: TFBEvent;
  1200.   This event is fired when LEdit tries to determine where a brace is for
  1201.   syntax highlighting. The application should not change the text in LEdit
  1202.   from within this event. In the case where words are considered braces
  1203.   (eg., "begin", "end"), you need to tell LEdit what the opposite brace
  1204.   is. To do this, you place the opposite brace into caWord of the WordDesc
  1205.   property. See the Delphi example 'ledlp_5' to see how this is done.
  1206.  
  1207.   The following values are passed to this event:
  1208.  
  1209.   Read Only
  1210.   ---------
  1211.   Sender: TObject    - This contains the object that called this event.
  1212.  
  1213.   Read and Write
  1214.   --------------
  1215.   WordType: Word     - This contains the type of the Word. See LEdit
  1216.                        documentation.
  1217.   WordValue: LongInt - This contains the numeric value of the word as
  1218.                        defined by the WordType variable.
  1219.   WordStr: String    - This contains the current word.
  1220.  
  1221.   Write Only
  1222.   ----------
  1223.   BraceType: TLEBraceStyle - This contains the type of Brace that is
  1224.                              in the WordValue and WordStr variables. You
  1225.                              need to set this variable with the type of
  1226.                              brace the word is.
  1227.  
  1228.   BraceType should be set to one of the following to specify what type of
  1229.   brace the word is:
  1230.  
  1231.   Value                 Meaning
  1232.   -------------------------------------------------
  1233.   bsNone                The word is not a brace.
  1234.   bsLeftBrace           The word is a left brace.
  1235.   bsRightBrace          The word is a right brace.
  1236.   bsNoCaseLeftBrace     The word is a left brace
  1237.                         (case insensitive search).
  1238.   bsNoCaseRightBrace    The word is a right brace
  1239.                         (case insensitive search).
  1240.  
  1241. property OnGoingToClose: TNotifyEvent;
  1242.   This event is fired when LEdit is ready to close. If the file in the
  1243.   control was not saved, this will be followed by an OnAskIfStoreFile
  1244.   event. This event is fired when LEdit is ready to close. It is also
  1245.   fired any time a new file is started or opened.
  1246.  
  1247. property OnGotFocus: TNotifyEvent;
  1248.   This event is fired when the LEdit component receives focus.
  1249.  
  1250. property OnHorzScroll: TNotifyEvent;
  1251.   This event is fired when LEdit is scrolled horizontally.
  1252.  
  1253. property OnKeyDown: TKeyEvent;
  1254.   The OnKeyDown event occurs when a user presses any key while the
  1255.   control has focus. Use the OnKeyDown event handler to specify
  1256.   special processing to occur when a key is pressed. The OnKeyDown
  1257.   handler can respond to all keyboard keys including function keys
  1258.   and keys combined with the Shift, Alt, and Ctrl keys and pressed
  1259.   mouse buttons. The Key parameter of the OnKeyDown event handler is
  1260.   of type Word; therefore, you must use virtual key codes to
  1261.   determine the key pressed. See the Delphi help for details.
  1262.  
  1263. property OnKeyPress: TKeyPressEvent;
  1264.   The OnKeyPress event occurs when a user presses a single character
  1265.   key. Use the OnKeyPress event handler when you want something to
  1266.   happen as a result of pressing a single key. See the Delphi help
  1267.   for details.
  1268.  
  1269. property OnKeyUp;
  1270.   The OnKeyUp event occurs when the user releases a key that has been
  1271.   pressed. Use the OnKeyUp event handler when you want special
  1272.   processing to occur when a key is released. See the Delphi help for
  1273.   details.
  1274.  
  1275. property OnLostFocus: TNotifyEvent;
  1276.   This event is fired when the LEdit component loses focus.
  1277.  
  1278. property OnMaxLine: TNotifyEvent;
  1279.   This event is fired when a user action generates a string greater
  1280.   than 8K (current limitation per line). If a string longer than 8K
  1281.   is loaded from a file or inserted from the clipboard, this event is
  1282.   not fired. Instead, the string is automatically split without
  1283.   notification.
  1284.  
  1285. property OnMouseDown: TMouseEvent;
  1286.   The OnMouseDown event occurs when the user presses a mouse button
  1287.   with the mouse pointer over a control. Use the OnMouseDown event
  1288.   handler when you want some processing to occur as a result of
  1289.   pressing a mouse button. See the Delphi help for details.
  1290.  
  1291. property OnMouseMove: TMouseMoveEvent;
  1292.   The OnMouseMove occurs when the user moves the mouse pointer when the
  1293.   mouse pointer is over a control. Use the OnMouseMove event handler
  1294.   when you want something to happen when the mouse pointer moves within
  1295.   the control. See the Delphi help for details.
  1296.  
  1297. property OnMouseUp: TMouseEvent;
  1298.   The OnMouseUp event occurs when the user releases a mouse button that
  1299.   was pressed with the mouse pointer over a component. Use the OnMouseUp
  1300.   event handler when you want processing to occur when the user releases
  1301.   a mouse button. See the Delphi help for details.
  1302.  
  1303. property OnNewFile: TNotifyEvent;
  1304.   This event is fired when LEdit creates a new file.
  1305.  
  1306. property OnNewFont: TNotifyEvent;
  1307.   This event is fired when the font is changed.
  1308.  
  1309. property OnPaint: TPaintEvent;
  1310.   This event is fired when the PaintMode property is set to dsDirect or
  1311.   dsUseMemoryDC and LEdit is ready to paint the background. This allows
  1312.   you to draw a special background or create a special bitmap for LEdit
  1313.   to place behind the text.
  1314.  
  1315.   The following values are passed to this event:
  1316.  
  1317.   Read Only
  1318.   ---------
  1319.   Sender: TObject   - This contains the object that called this event.
  1320.   DCHandle: HDC     - This contains the Handle to the device context that can
  1321.                       be drawn on. If the PaintMode property is set to
  1322.                       dsDirect, then this will contain the handle to the device
  1323.                       context that allows you to draw directly on the LEdit
  1324.                       background. If the PaintMode property is set to
  1325.                       dsUseMemoryDC then this will contain a handle to a
  1326.                       memory device context that can be drawn on. This memory
  1327.                       device context is then passed to LEdit. LEdit will then
  1328.                       draw the text on this memory device context before it
  1329.                       displays it. This allows flicker free drawing of the
  1330.                       background, at the expense of speed.
  1331.   ClientArea: TRect - This contains the rectangle that describes the client
  1332.                       area of LEdit.
  1333.  
  1334. property OnSpaceError: TNotifyEvent;
  1335.   This event is fired when a memory error occurs.
  1336.  
  1337. property OnTimeToLoadText: TNotifyEvent;
  1338.   This event is fired at initialization, when the Initialize property is
  1339.   set to isCustom. This is to allow you to customize the way LEdit is
  1340.   initialized. The FileName property can't be changed from within this
  1341.   event handler, because OnTimeToLoadText is called from procedure setting
  1342.   FileName property. See the Initialize property for details.
  1343.  
  1344. property OnVertScroll: TNotifyEvent;
  1345.   This event is fired when LEdit is scrolled vertically.
  1346.  
  1347. property OnWordClick: TWordClickEvent;
  1348.   This event is fired when a Word is double clicked in LEdit.
  1349.  
  1350.   The following values are passed to this event:
  1351.  
  1352.   Read Only
  1353.   ---------
  1354.   Sender: TObject    - This contains the object that called this event.
  1355.   WordType: Word     - This contains the type of the Word. See LEdit
  1356.                        documentation. 
  1357.   WordValue: LongInt - This contains the numeric value of the word as 
  1358.                        defined by the WordType variable.
  1359.   WordStr: String    - This contains the current word.
  1360.  
  1361.   Read and Write
  1362.   --------------
  1363.   WordHandled: Boolean - This contains the status on whether this word 
  1364.                          was handled in this event. If it is not handled 
  1365.                          in this event, then you need to set this variable 
  1366.                          to False. This is the default and LEdit will 
  1367.                          highlight the word clicked by default. If you 
  1368.                          handle the word in this event, then you need to 
  1369.                          set this variable to True. This way LEdit will
  1370.                          not handle it. This can be used for spell checking
  1371.                          and other uses where you need to handle a word 
  1372.                          that is double clicked on.
  1373.  
  1374. ================================================================================
  1375.  
  1376. The following are the standard Delphi properties:
  1377.     Align, Color, Ctl3D, DragCursor, DragMode, Enabled, Font, 
  1378.     ParentColor, ParentCtl3D, ParentFont, ParentShowHint, PopupMenu,
  1379.     ShowHint, TabOrder, TabStop, Visible;
  1380.  
  1381.  
  1382. The following are the standard Delphi events:
  1383.     OnClick, OnDblClick, OnDragDrop, OnDragOver, OnEndDrag, OnEnter,
  1384.     OnExit, OnKeyDown, OnKeyPress, OnKeyUp, OnMouseDown, OnMouseMove,
  1385.     OnMouseUp;
  1386.  
  1387.